﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace Helena.Areas.Vendedores.Models
{
    public class VendedorView
    {
        public int ID { get; set; }
        public bool Estado { get; set; }
        
        [Required]
        [DisplayName("Nombres"), DataType(DataType.Text)]
        public string Nombre { get; set; }

        [Required]
        [DisplayName("Apellido Paterno"), DataType(DataType.Text)]
        public string apaterno { get; set; }

        [Required]
        [DisplayName("Apellido Materno"), DataType(DataType.Text)]
        public string amaterno { get; set; }

        [DisplayName("Direccion"), DataType(DataType.Text)]
        public string Direccion { get; set; }

        [DisplayName("Telefono"), DataType(DataType.PhoneNumber)]
        public string Telefono { get; set; }

        [DisplayName("Celular"), DataType(DataType.PhoneNumber)]
        public string Celular { get; set; }

        [DisplayName("Email"), DataType(DataType.EmailAddress)]
        public string email { get; set; }
        
        [DisplayName("Comentario"), DataType(DataType.Text)]
        public string Descripcion { get; set; }
        
        [Required]
        [DisplayName("Usuario"), DataType(DataType.Text)]
        public string Usuario { get; set; }
        
        [Required]
        [DisplayName("Contraseña"), DataType(DataType.Password)]
        public string Contrasena { get; set; }

        [DisplayName("Permitir ventas")]
        public bool venta { get; set; }

        [DisplayName("Permisos de Administracion")]
        public bool admin { get; set; }
        
        [DisplayName("Permitir Ingreso de Ordenes de salida")]
        public bool salida { get; set; }

        [DisplayName("Permitir Ingreso de Ordenes de ingreso")]
        public bool ingreso { get; set; }

        [DisplayName("Permitir Generar Reporte de Venta Diario")]
        public bool reportediario { get; set; }

        [DisplayName("Permitir Generar Reporte de Venta Mensual")]
        public bool reportemensual { get; set; }

        [DisplayName("Permitir Crear Kardex")]
        public bool kardex { get; set; }

        [DisplayName("Permitir Enviar Emails a Contabilidad")]
        public bool envioemail { get; set; }

        [DisplayName("Permitir Descarga de Reportes en Excel")]
        public bool descarga { get; set; }

        [DisplayName("Uso del Sistema")]
        public bool Activo { get; set; }

        public string NombreLargo { set; get; }

        public VendedorView() { 
            NombreLargo="";
            ID = 0;
        }
        public VendedorView(Vendedor v)
        {
            ID = v.ID;
            Estado = v.Estado;
            Nombre = v.Nombre;
            apaterno = v.apaterno;
            amaterno = v.amaterno;
            Direccion = v.Direccion;
            Telefono = v.Telefono;
            Celular = v.Celular;
            email = v.email;
            Descripcion = v.Descripcion;
            Usuario = v.Usuario;
            Contrasena = v.Contrasena;
            venta = v.venta;
            salida = v.salida;
            ingreso = v.ingreso;
            reportediario = v.reportediario;
            reportemensual = v.reportemensual;
            kardex = v.kardex;
            admin = v.admin;
            envioemail = v.envioemail;
            descarga = v.descarga;
            Activo = v.Activo;
            NombreLargo = v.Nombre + " - " + v.apaterno + " " + v.amaterno;
        }

        public Vendedor deserializa(InterfazLogicaVendedor logica)
        {
            return new Vendedor
            {
                ID = this.ID,
                Estado = this.Estado,
                Nombre = this.Nombre,
                apaterno = this.apaterno,
                amaterno = this.amaterno,
                Direccion = this.Direccion,
                Telefono = this.Telefono,
                Celular = this.Celular,
                email = this.email,
                Descripcion = this.Descripcion,
                Usuario = this.Usuario,
                Contrasena = this.Contrasena,
                venta = this.venta,
                admin=this.admin,
                salida = this.salida,
                ingreso = this.ingreso,
                reportediario = this.reportediario,
                reportemensual = this.reportemensual,
                kardex = this.kardex,
                envioemail = this.envioemail,
                descarga = this.descarga,
                Activo = this.Activo,
                NombreLargo = this.NombreLargo
            };
            
        }
        
    }
}